#include "Atlas/AtlasView.h"

/*************************************
 *          Public
 *************************************/

    /*************************************
     *          Constructors
     *************************************/

        AtlasView::AtlasView( QGraphicsScene * scene, QWidget * parent) : QGraphicsView(scene, parent){
            // QGraphicsView héritant de la classe QAbstractScrollBar, on invoque les 2 méthodes suivantes
            // pour définir le comportement des barres de défilements

            setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
            setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
        }

        AtlasView::AtlasView( QGraphicsScene * scene) : QGraphicsView(scene){
            // QGraphicsView héritant de la classe QAbstractScrollBar, on invoque les 2 méthodes suivantes
            // pour définir le comportement des barres de défilements

            setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
            setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
        }

    /*************************************
     *          Events
     *************************************/

        void AtlasView::mouseMoveEvent(QMouseEvent *event){
            QGraphicsView::mouseMoveEvent( event);

            if(event->buttons() ==  Qt::RightButton){
                QMouseEvent *   e   =   new QMouseEvent(
                    QEvent::MouseMove,
                    QPoint(event->x() + pos().x(), event->y() + pos().y()),
                    Qt::NoButton,
                    Qt::LeftButton,
                    NULL
                );

                QApplication::sendEvent(parent(),(QEvent * )e);
            }
        }

        void AtlasView::mouseReleaseEvent(QMouseEvent *event){
            QGraphicsView::mouseReleaseEvent( event);
            QApplication::sendEvent(parent(),(QEvent * )event);
        }

        void AtlasView::mousePressEvent(QMouseEvent *event){
             QGraphicsView::mousePressEvent( event);
        }

        void AtlasView::wheelEvent(QWheelEvent *event){
              QApplication::sendEvent(parent(),(QEvent * )event);
        }

